///*  File Name	: Configurator.cpp
// *  Author		: Pang Jiacai
// *	 E-mail		: 823960168@qq.com
// *  Created on	: 2012-6-30
// *  Description:
// */
//
//#include "Configurator.h"
//#include <fcntl.h>
//#include <unistd.h>
//#include <stdio.h>
//#include <stdlib.h>
//#include "Logger.h"
//
//Configurator *Configurator::instance_= NULL;
//
//Configurator::Configurator()
//{
//	this->has_load_cfg_ = false;
//	this->service_ = Json::Value::null;
//}
//
//Configurator::~Configurator()
//{
//	this->has_load_cfg_ = false;
//}
//
//Configurator *Configurator::instance(void)
//{
//	if(NULL==instance_)
//	{
//		instance_ = new Configurator();
//	}
//	return instance_;
//}
//
//
//int Configurator::load_json_file(const char *file,Json::Value &cfg)
//{
//    FILE *fd = fopen(file, "rb");
//
//    if (fd == 0)
//    {
//        return -1;
//    }
//
//    fseek(fd, 0, SEEK_END);
//    long size = ftell(fd);
//    fseek(fd, 0, SEEK_SET);
//
//    std::string config_doc = "";
//
//    MessageBlock mb(size + 1);
//
//    if (fread(mb.wr_ptr(), 1, size, fd) == (unsigned long) size)
//    {
//        config_doc = mb.rd_ptr();
//    }
//    fclose(fd);
//
//    if (this->json_reader_.parse(config_doc, cfg) == false)
//    {
//        LOG((ERROR_LOG, "Failed to parse file %s\n error: %s\n context: %s.\n",
//                file, this->json_reader_.getFormatedErrorMessages().c_str(),
//                config_doc.c_str()));
//        return -1;
//    }
//	return 0;
//}
//
//
//void Configurator::load_config(void)
//{
//	LockGuardReturn(RT_MUTEX,lock,this->rt_mutex,;);
//
//	if(this->has_load_cfg_)
//	{
//		return ;
//	}
//	this->has_load_cfg_ = true;
//
//	this->load_service_cfg();
//
//	this->load_sql_cfg();
//}
//
//int Configurator::load_service_cfg(void)
//{
//	std::string cfg_file("ConfigFile/service_list.json");
//
//	if(this->load_json_file(cfg_file.c_str(),this->service_)==0)
//	{
//		return 0;
//	}
//	this->service_ = Json::Value::null;
//
//	LOG((ERROR_LOG, "load file %s failed\n", cfg_file.c_str()));
//	return -1;
//}
//
//int Configurator::load_sql_cfg(void)
//{
//	std::string cfg_file("ConfigFile/sql.json");
//
//	if(this->load_json_file(cfg_file.c_str(),this->sql_)==0)
//	{
//		return 0;
//	}
//	this->sql_ = Json::Value::null;
//
//	LOG((ERROR_LOG, "load file %s failed\n", cfg_file.c_str()));
//	return -1;
//}
//
////////////////////////////////////////////////////////////////
//
//const Json::Value &Configurator::serivce_cfg(void)
//{
//	return this->service_;
//}
//
//const Json::Value &Configurator::sql_cfg(void)
//{
//	return this->sql_;
//}
